/**
 * velocity-animate (C) 2014-2017 Julian Shapiro.
 *
 * Licensed under the MIT license. See LICENSE file in the project root for details.
 */
!function (e, t) {
    "object" == typeof exports && "undefined" != typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define(t) : e.Velocity = t()
}(this, function () {
    "use strict";
    var e = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (e) {
        return typeof e
    } : function (e) {
        return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
    }, t = function (e, t) {
        if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
    }, n = function () {
        function e(e, t) {
            for (var n = 0; n < t.length; n++) {
                var r = t[n];
                r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(e, r.key, r)
            }
        }

        return function (t, n, r) {
            return n && e(t.prototype, n), r && e(t, r), t
        }
    }(), r = function (e, t, n) {
        return t in e ? Object.defineProperty(e, t, {
            value: n,
            enumerable: !0,
            configurable: !0,
            writable: !0
        }) : e[t] = n, e
    };

    function i(e) {
        return !0 === e || !1 === e
    }

    function o(e) {
        return "[object Function]" === Object.prototype.toString.call(e)
    }

    function a(e) {
        return !(!e || !e.nodeType)
    }

    function l(e) {
        return "number" == typeof e
    }

    function s(t) {
        if (!t || "object" !== (void 0 === t ? "undefined" : e(t)) || t.nodeType || "[object Object]" !== Object.prototype.toString.call(t)) return !1;
        var n = Object.getPrototypeOf(t);
        return !n || n.hasOwnProperty("constructor") && n.constructor === Object
    }

    function u(e) {
        return "string" == typeof e
    }

    function c(e) {
        return e && l(e.length) && o(e.velocity)
    }

    function f(e) {
        return e && e !== window && l(e.length) && !u(e) && !o(e) && !a(e) && (0 === e.length || a(e[0]))
    }

    function d(e) {
        return Array.prototype.slice.call(e, 0)
    }

    function v(e, t, n, r) {
        e && Object.defineProperty(e, t, {configurable: !r, writable: !r, value: n})
    }

    function p() {
        for (var e = arguments.length, t = Array(e), n = 0; n < e; n++) t[n] = arguments[n];
        var r = !0, i = !1, o = void 0;
        try {
            for (var a, l = arguments[Symbol.iterator](); !(r = (a = l.next()).done); r = !0) {
                var s = a.value;
                if (void 0 !== s && s == s) return s
            }
        } catch (e) {
            i = !0, o = e
        } finally {
            try {
                !r && l.return && l.return()
            } finally {
                if (i) throw o
            }
        }
    }

    var y = Date.now ? Date.now : function () {
        return (new Date).getTime()
    };

    function g(e, t) {
        e instanceof Element && (e.classList ? e.classList.remove(t) : e.className = e.className.replace(new RegExp("(^|\\s)" + t + "(\\s|$)", "gi"), " "))
    }

    var h = {};

    function m(e, t) {
        var n, r, i = e[0], a = e[1];
        u(i) ? o(a) ? h[i] && (n = h, r = i, !Object.prototype.propertyIsEnumerable.call(n, r)) ? console.warn("VelocityJS: Trying to override internal 'registerAction' callback", i) : !0 === t ? v(h, i, a) : h[i] = a : console.warn("VelocityJS: Trying to set 'registerAction' callback to an invalid value:", i, a) : console.warn("VelocityJS: Trying to set 'registerAction' name to an invalid value:", i)
    }

    m(["registerAction", m], !0);
    var w = 400, b = {fast: 200, normal: 400, slow: 600}, S = {};

    function x(e) {
        var t = e[0], n = e[1];
        u(t) ? o(n) ? S[t] ? console.warn("VelocityJS: Trying to override 'registerEasing' callback", t) : S[t] = n : console.warn("VelocityJS: Trying to set 'registerEasing' callback to an invalid value:", t, n) : console.warn("VelocityJS: Trying to set 'registerEasing' name to an invalid value:", t)
    }

    function k(e, t, n, r) {
        return t + e * (n - t)
    }

    function O(e) {
        return Math.min(Math.max(e, 0), 1)
    }

    function E(e, t) {
        return 1 - 3 * t + 3 * e
    }

    function _(e, t) {
        return 3 * t - 6 * e
    }

    function T(e) {
        return 3 * e
    }

    function M(e, t, n) {
        return ((E(t, n) * e + _(t, n)) * e + T(t)) * e
    }

    function V(e, t, n) {
        return 3 * E(t, n) * e * e + 2 * _(t, n) * e + T(t)
    }

    function q(e, t, n, r) {
        var i = 4, o = .001, a = 1e-7, l = 10, s = 11, u = 1 / (s - 1), c = "Float32Array" in window;
        if (4 === arguments.length) {
            for (var f = 0; f < 4; ++f) if ("number" != typeof arguments[f] || isNaN(arguments[f]) || !isFinite(arguments[f])) return;
            e = O(e), n = O(n);
            var d = c ? new Float32Array(s) : new Array(s), v = !1, p = "generateBezier(" + [e, t, n, r] + ")",
                y = function (i, o, a, l) {
                    return v || h(), 0 === i ? o : 1 === i ? a : e === t && n === r ? o + i * (a - o) : o + M(g(i), t, r) * (a - o)
                };
            return y.getControlPoints = function () {
                return [{x: e, y: t}, {x: n, y: r}]
            }, y.toString = function () {
                return p
            }, y
        }

        function g(t) {
            for (var r = s - 1, c = 0, f = 1; f !== r && d[f] <= t; ++f) c += u;
            var v = c + (t - d[--f]) / (d[f + 1] - d[f]) * u, p = V(v, e, n);
            return p >= o ? function (t, r) {
                for (var o = 0; o < i; ++o) {
                    var a = V(r, e, n);
                    if (0 === a) return r;
                    r -= (M(r, e, n) - t) / a
                }
                return r
            }(t, v) : 0 === p ? v : function (t, r, i) {
                var o = void 0, s = void 0, u = 0;
                do {
                    (o = M(s = r + (i - r) / 2, e, n) - t) > 0 ? i = s : r = s
                } while (Math.abs(o) > a && ++u < l);
                return s
            }(t, c, c + u)
        }

        function h() {
            v = !0, e === t && n === r || function () {
                for (var t = 0; t < s; ++t) d[t] = M(t * u, e, n)
            }()
        }
    }

    m(["registerEasing", x], !0), x(["linear", k]), x(["swing", function (e, t, n) {
        return t + (.5 - Math.cos(e * Math.PI) / 2) * (n - t)
    }]), x(["spring", function (e, t, n) {
        return t + (1 - Math.cos(4.5 * e * Math.PI) * Math.exp(6 * -e)) * (n - t)
    }]);
    var N = q(.42, 0, 1, 1), A = q(0, 0, .58, 1), L = q(.42, 0, .58, 1);

    function J(e) {
        return -e.tension * e.x - e.friction * e.v
    }

    function I(e, t, n) {
        var r = {x: e.x + n.dx * t, v: e.v + n.dv * t, tension: e.tension, friction: e.friction};
        return {dx: r.v, dv: J(r)}
    }

    function j(e, t) {
        var n = {dx: e.v, dv: J(e)}, r = I(e, .5 * t, n), i = I(e, .5 * t, r), o = I(e, t, i),
            a = 1 / 6 * (n.dx + 2 * (r.dx + i.dx) + o.dx), l = 1 / 6 * (n.dv + 2 * (r.dv + i.dv) + o.dv);
        return e.x = e.x + a * t, e.v = e.v + l * t, e
    }

    x(["ease", q(.25, .1, .25, 1)]), x(["easeIn", N]), x(["ease-in", N]), x(["easeOut", A]), x(["ease-out", A]), x(["easeInOut", L]), x(["ease-in-out", L]), x(["easeInSine", q(.47, 0, .745, .715)]), x(["easeOutSine", q(.39, .575, .565, 1)]), x(["easeInOutSine", q(.445, .05, .55, .95)]), x(["easeInQuad", q(.55, .085, .68, .53)]), x(["easeOutQuad", q(.25, .46, .45, .94)]), x(["easeInOutQuad", q(.455, .03, .515, .955)]), x(["easeInCubic", q(.55, .055, .675, .19)]), x(["easeOutCubic", q(.215, .61, .355, 1)]), x(["easeInOutCubic", q(.645, .045, .355, 1)]), x(["easeInQuart", q(.895, .03, .685, .22)]), x(["easeOutQuart", q(.165, .84, .44, 1)]), x(["easeInOutQuart", q(.77, 0, .175, 1)]), x(["easeInQuint", q(.755, .05, .855, .06)]), x(["easeOutQuint", q(.23, 1, .32, 1)]), x(["easeInOutQuint", q(.86, 0, .07, 1)]), x(["easeInExpo", q(.95, .05, .795, .035)]), x(["easeOutExpo", q(.19, 1, .22, 1)]), x(["easeInOutExpo", q(1, 0, 0, 1)]), x(["easeInCirc", q(.6, .04, .98, .335)]), x(["easeOutCirc", q(.075, .82, .165, 1)]), x(["easeInOutCirc", q(.785, .135, .15, .86)]);
    var C = {};

    function P(e, t) {
        return l(e) ? e : u(e) ? b[e.toLowerCase()] || parseFloat(e.replace("ms", "").replace("s", "000")) : null == t ? void 0 : P(t)
    }

    function z(e) {
        if (i(e)) return e;
        null != e && console.warn("VelocityJS: Trying to set 'cache' to an invalid value:", e)
    }

    function F(e) {
        if (o(e)) return e;
        null != e && console.warn("VelocityJS: Trying to set 'begin' to an invalid value:", e)
    }

    function H(e, t) {
        if (o(e)) return e;
        null == e || t || console.warn("VelocityJS: Trying to set 'complete' to an invalid value:", e)
    }

    function R(e) {
        var t = P(e);
        if (!isNaN(t)) return t;
        null != e && console.error("VelocityJS: Trying to set 'delay' to an invalid value:", e)
    }

    function B(e, t) {
        var n = P(e);
        if (!isNaN(n) && n >= 0) return n;
        null == e || t || console.error("VelocityJS: Trying to set 'duration' to an invalid value:", e)
    }

    function W(e, t, n) {
        if (u(e)) return S[e];
        if (o(e)) return e;
        if (Array.isArray(e)) {
            if (1 === e.length) return r = e[0], C[r] || (C[r] = function (e, t, n) {
                return 0 === e ? t : 1 === e ? n : t + Math.round(e * r) * (1 / r) * (n - t)
            });
            if (2 === e.length) return function e(t, n, r) {
                var i = {x: -1, v: 0, tension: parseFloat(t) || 500, friction: parseFloat(n) || 20}, o = [0],
                    a = null != r, l = 0, s = void 0, u = void 0;
                for (s = a ? (l = e(i.tension, i.friction)) / r * .016 : .016; u = j(u || i, s), o.push(1 + u.x), l += 16, Math.abs(u.x) > 1e-4 && Math.abs(u.v) > 1e-4;) ;
                return a ? function (e, t, n) {
                    return 0 === e ? t : 1 === e ? n : t + o[Math.floor(e * (o.length - 1))] * (n - t)
                } : l
            }(e[0], e[1], t);
            if (4 === e.length) return q.apply(null, e) || !1
        }
        var r;
        null == e || n || console.error("VelocityJS: Trying to set 'easing' to an invalid value:", e)
    }

    function $(e) {
        if (!1 === e) return 0;
        var t = parseInt(e, 10);
        if (!isNaN(t) && t >= 0) return Math.min(t, 60);
        null != e && console.warn("VelocityJS: Trying to set 'fpsLimit' to an invalid value:", e)
    }

    function G(e) {
        switch (e) {
            case!1:
                return 0;
            case!0:
                return !0;
            default:
                var t = parseInt(e, 10);
                if (!isNaN(t) && t >= 0) return t
        }
        null != e && console.warn("VelocityJS: Trying to set 'loop' to an invalid value:", e)
    }

    function Q(e, t) {
        if (!1 === e || u(e)) return e;
        null == e || t || console.warn("VelocityJS: Trying to set 'queue' to an invalid value:", e)
    }

    function D(e) {
        switch (e) {
            case!1:
                return 0;
            case!0:
                return !0;
            default:
                var t = parseInt(e, 10);
                if (!isNaN(t) && t >= 0) return t
        }
        null != e && console.warn("VelocityJS: Trying to set 'repeat' to an invalid value:", e)
    }

    function U(e) {
        if (l(e)) return e;
        null != e && console.error("VelocityJS: Trying to set 'speed' to an invalid value:", e)
    }

    function Z(e) {
        if (i(e)) return e;
        null != e && console.error("VelocityJS: Trying to set 'sync' to an invalid value:", e)
    }

    var Y = void 0, X = void 0, K = void 0, ee = void 0, te = void 0, ne = void 0, re = void 0, ie = void 0,
        oe = void 0, ae = void 0, le = void 0, se = void 0, ue = void 0, ce = void 0, fe = void 0, de = void 0,
        ve = function () {
            function e() {
                t(this, e)
            }

            return n(e, null, [{
                key: "reset", value: function () {
                    Y = !0, X = void 0, K = void 0, ee = 0, te = w, ne = W("swing", w), re = 60, ie = 0, ae = 980 / 60, le = !0, se = !0, ue = "", ce = 0, fe = 1, de = !0
                }
            }, {
                key: "cache", get: function () {
                    return Y
                }, set: function (e) {
                    void 0 !== (e = z(e)) && (Y = e)
                }
            }, {
                key: "begin", get: function () {
                    return X
                }, set: function (e) {
                    void 0 !== (e = F(e)) && (X = e)
                }
            }, {
                key: "complete", get: function () {
                    return K
                }, set: function (e) {
                    void 0 !== (e = H(e)) && (K = e)
                }
            }, {
                key: "delay", get: function () {
                    return ee
                }, set: function (e) {
                    void 0 !== (e = R(e)) && (ee = e)
                }
            }, {
                key: "duration", get: function () {
                    return te
                }, set: function (e) {
                    void 0 !== (e = B(e)) && (te = e)
                }
            }, {
                key: "easing", get: function () {
                    return ne
                }, set: function (e) {
                    void 0 !== (e = W(e, te)) && (ne = e)
                }
            }, {
                key: "fpsLimit", get: function () {
                    return re
                }, set: function (e) {
                    void 0 !== (e = $(e)) && (re = e, ae = 980 / e)
                }
            }, {
                key: "loop", get: function () {
                    return ie
                }, set: function (e) {
                    void 0 !== (e = G(e)) && (ie = e)
                }
            }, {
                key: "mobileHA", get: function () {
                    return oe
                }, set: function (e) {
                    i(e) && (oe = e)
                }
            }, {
                key: "minFrameTime", get: function () {
                    return ae
                }
            }, {
                key: "promise", get: function () {
                    return le
                }, set: function (e) {
                    void 0 !== (e = function (e) {
                        if (i(e)) return e;
                        null != e && console.warn("VelocityJS: Trying to set 'promise' to an invalid value:", e)
                    }(e)) && (le = e)
                }
            }, {
                key: "promiseRejectEmpty", get: function () {
                    return se
                }, set: function (e) {
                    void 0 !== (e = function (e) {
                        if (i(e)) return e;
                        null != e && console.warn("VelocityJS: Trying to set 'promiseRejectEmpty' to an invalid value:", e)
                    }(e)) && (se = e)
                }
            }, {
                key: "queue", get: function () {
                    return ue
                }, set: function (e) {
                    void 0 !== (e = Q(e)) && (ue = e)
                }
            }, {
                key: "repeat", get: function () {
                    return ce
                }, set: function (e) {
                    void 0 !== (e = D(e)) && (ce = e)
                }
            }, {
                key: "repeatAgain", get: function () {
                    return ce
                }
            }, {
                key: "speed", get: function () {
                    return fe
                }, set: function (e) {
                    void 0 !== (e = U(e)) && (fe = e)
                }
            }, {
                key: "sync", get: function () {
                    return de
                }, set: function (e) {
                    void 0 !== (e = Z(e)) && (de = e)
                }
            }]), e
        }();
    Object.freeze(ve), ve.reset();
    var pe = [], ye = {}, ge = new Set, he = [], me = new Map, we = "velocityData";

    function be(e) {
        var t = e[we];
        if (t) return t;
        for (var n = e.ownerDocument.defaultView, r = 0, i = 0; i < he.length; i++) {
            var o = he[i];
            u(o) ? e instanceof n[o] && (r |= 1 << i) : e instanceof o && (r |= 1 << i)
        }
        var a = {
            types: r,
            count: 0,
            computedStyle: null,
            cache: {},
            queueList: {},
            lastAnimationList: {},
            lastFinishList: {},
            window: n
        };
        return Object.defineProperty(e, we, {value: a}), a
    }

    var Se = window && window === window.window, xe = Se && void 0 !== window.pageYOffset, ke = {
        isClient: Se,
        isMobile: Se && /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),
        isGingerbread: Se && /Android 2\.3\.[3-7]/i.test(navigator.userAgent),
        prefixElement: Se && document.createElement("div"),
        windowScrollAnchor: xe,
        scrollAnchor: xe ? window : !Se || document.documentElement || document.body.parentNode || document.body,
        scrollPropertyLeft: xe ? "pageXOffset" : "scrollLeft",
        scrollPropertyTop: xe ? "pageYOffset" : "scrollTop",
        className: "velocity-animating",
        isTicking: !1,
        first: void 0,
        last: void 0,
        firstNew: void 0
    };

    function Oe(e) {
        var t = ke.last;
        e._prev = t, e._next = void 0, t ? t._next = e : ke.first = e, ke.last = e, ke.firstNew || (ke.firstNew = e);
        var n = e.element;
        be(n).count++ || function (e, t) {
            e instanceof Element && (e.classList ? e.classList.add(t) : (g(e, t), e.className += (e.className.length ? " " : "") + t))
        }(n, ke.className)
    }

    function Ee(e, t, n) {
        var r = be(e);
        if (!1 !== n && (r.lastAnimationList[n] = t), !1 === n) Oe(t); else {
            u(n) || (n = "");
            var i = r.queueList[n];
            if (i) {
                for (; i._next;) i = i._next;
                i._next = t, t._prev = i
            } else null === i ? r.queueList[n] = t : (r.queueList[n] = null, Oe(t))
        }
    }

    function _e(e) {
        var t = e._next, n = e._prev, r = null == e.queue ? e.options.queue : e.queue;
        (ke.firstNew === e && (ke.firstNew = t), ke.first === e ? ke.first = t : n && (n._next = t), ke.last === e ? ke.last = n : t && (t._prev = n), r) && (be(e.element) && (e._next = e._prev = void 0))
    }

    var Te = {};

    function Me(e) {
        var t = e.options, n = p(e.queue, t.queue), r = p(e.loop, t.loop, ve.loop),
            i = p(e.repeat, t.repeat, ve.repeat), o = 8 & e._flags;
        if (o || !r && !i) {
            var a = e.element, l = be(a);
            if (--l.count || o || g(a, ke.className), t && ++t._completed === t._total) {
                !o && t.complete && (!function (e) {
                    var t = e.complete || e.options.complete;
                    if (t) try {
                        var n = e.elements;
                        t.call(n, n, e)
                    } catch (e) {
                        setTimeout(function () {
                            throw e
                        }, 1)
                    }
                }(e), t.complete = null);
                var s = t._resolver;
                s && (s(e.elements), delete t._resolver)
            }
            !1 !== n && (o || (l.lastFinishList[n] = e.timeStart + p(e.duration, t.duration, ve.duration)), function (e, t, n) {
                if (!1 !== t) {
                    u(t) || (t = "");
                    var r = be(e), i = r.queueList[t];
                    i ? (r.queueList[t] = i._next || null, n || Oe(i)) : null === i && delete r.queueList[t]
                }
            }(a, n)), _e(e)
        } else i && !0 !== i ? e.repeat = i - 1 : r && !0 !== r && (e.loop = r - 1, e.repeat = p(e.repeatAgain, t.repeatAgain, ve.repeatAgain)), r && (e._flags ^= 64), !1 !== n && (be(e.element).lastFinishList[n] = e.timeStart + p(e.duration, t.duration, ve.duration)), e.timeStart = e.ellapsedTime = e.percentComplete = 0, e._flags &= -5
    }

    function Ve(e) {
        var t = e[0], n = e[1], r = e[2];
        if ((!u(t) || window[t] instanceof Object) && (u(t) || t instanceof Object)) if (u(n)) if (o(r)) {
            var i = he.indexOf(t), a = 3;
            if (i < 0 && !u(t)) if (me.has(t)) i = he.indexOf(me.get(t)); else for (var l in window) if (window[l] === t) {
                (i = he.indexOf(l)) < 0 && (i = he.push(l) - 1, pe[i] = {}, me.set(t, l));
                break
            }
            if (i < 0 && (i = he.push(t) - 1, pe[i] = {}), pe[i][n] = r, u(e[a])) {
                var s = e[a++], c = ye[s];
                c || (c = ye[s] = []), c.push(r)
            }
            !1 === e[a] && ge.add(n)
        } else console.warn("VelocityJS: Trying to set 'registerNormalization' callback to an invalid value:", n, r); else console.warn("VelocityJS: Trying to set 'registerNormalization' name to an invalid value:", n); else console.warn("VelocityJS: Trying to set 'registerNormalization' constructor to an invalid value:", t)
    }

    function qe(e) {
        var t = e[0], n = e[1], r = he.indexOf(t);
        if (r < 0 && !u(t)) if (me.has(t)) r = he.indexOf(me.get(t)); else for (var i in window) if (window[i] === t) {
            r = he.indexOf(i);
            break
        }
        return r >= 0 && pe[r].hasOwnProperty(n)
    }

    function Ne(e, t) {
        for (var n = be(e), r = void 0, i = he.length - 1, o = n.types; !r && i >= 0; i--) o & 1 << i && (r = pe[i][t]);
        return r
    }

    function Ae(e, t, n, r) {
        var i = ge.has(t), o = !i && be(e);
        (i || o && o.cache[t] !== n) && (i || (o.cache[t] = n || void 0), (r = r || Ne(e, t)) && r(e, n), Ut.debug >= 2 && console.info('Set "' + t + '": "' + n + '"', e))
    }

    function Le(e) {
        if (e.indexOf("calc(") >= 0) {
            for (var t = e.split(/([\(\)])/), n = 0, r = 0; r < t.length; r++) {
                var i = t[r];
                switch (i) {
                    case"(":
                        n++;
                        break;
                    case")":
                        n--;
                        break;
                    default:
                        n && "0" === i[0] && (t[r] = i.replace(/^0[a-z%]+ \+ /, ""))
                }
            }
            return t.join("").replace(/(?:calc)?\(([0-9\.]+[a-z%]+)\)/g, "$1")
        }
        return e
    }

    m(["registerNormalization", Ve]), m(["hasNormalization", qe]);
    var Je = {};

    function Ie(e) {
        var t = Je[e];
        return t || (Je[e] = e.replace(/-([a-z])/g, function (e, t) {
            return t.toUpperCase()
        }))
    }

    var je = /#([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})/gi, Ce = /#([a-f\d])([a-f\d])([a-f\d])/gi,
        Pe = /(rgba?\(\s*)?(\b[a-z]+\b)/g, ze = /rgb(a?)\(([^\)]+)\)/gi, Fe = /\s+/g, He = {};

    function Re(e, t, n, r) {
        return "rgba(" + parseInt(t, 16) + "," + parseInt(n, 16) + "," + parseInt(r, 16) + ",1)"
    }

    function Be(e) {
        return e.replace(je, Re).replace(Ce, function (e, t, n, r) {
            return Re(0, t + t, n + n, r + r)
        }).replace(Pe, function (e, t, n) {
            return He[n] ? (t || "rgba(") + He[n] + (t ? "" : ",1)") : e
        }).replace(ze, function (e, t, n) {
            return "rgba(" + n.replace(Fe, "") + (t ? "" : ",1") + ")"
        })
    }

    function We(e, t, n) {
        if ("border-box" === Qe(e, "boxSizing").toString().toLowerCase() === n) {
            var r = "width" === t ? ["Left", "Right"] : ["Top", "Bottom"],
                i = ["padding" + r[0], "padding" + r[1], "border" + r[0] + "Width", "border" + r[1] + "Width"], o = 0,
                a = !0, l = !1, s = void 0;
            try {
                for (var u, c = i[Symbol.iterator](); !(a = (u = c.next()).done); a = !0) {
                    var f = u.value, d = parseFloat(Qe(e, f));
                    isNaN(d) || (o += d)
                }
            } catch (e) {
                l = !0, s = e
            } finally {
                try {
                    !a && c.return && c.return()
                } finally {
                    if (l) throw s
                }
            }
            return n ? -o : o
        }
        return 0
    }

    function $e(e, t) {
        return e.getBoundingClientRect()[t] + We(e, t, !0) + "px"
    }

    function Ge(e, t) {
        var n = be(e), r = n.computedStyle ? n.computedStyle : n.window.getComputedStyle(e, null), i = 0;
        if (n.computedStyle || (n.computedStyle = r), "none" === r.display) switch (t) {
            case"width":
            case"height":
                return Ae(e, "display", "auto"), i = $e(e, t), Ae(e, "display", "none"), String(i)
        }
        if ((i = r[t]) || (i = e.style[t]), "auto" === i) switch (t) {
            case"width":
            case"height":
                i = $e(e, t);
                break;
            case"top":
            case"left":
            case"right":
            case"bottom":
                var o = Qe(e, "position");
                if ("fixed" === o || "absolute" === o) {
                    i = e.getBoundingClientRect[t] + "px";
                    break
                }
            default:
                i = "0px"
        }
        return i ? String(i) : ""
    }

    function Qe(e, t, n, r) {
        var i = be(e), o = void 0;
        return ge.has(t) && (r = !0), !r && i && null != i.cache[t] ? o = i.cache[t] : (n = n || Ne(e, t)) && (o = n(e), i && (i.cache[t] = o)), Ut.debug >= 2 && console.info('Get "' + t + '": "' + o + '"', e), o
    }

    var De = /^#([A-f\d]{3}){1,2}$/i, Ue = {
        function: function (e, t, n, r, i, o) {
            return e.call(t, r, n.length, i)
        }, number: function (e, t, n, r, i, o) {
            return String(e) + function (e) {
                for (var t in ye) if (ye[t].includes(e)) return t;
                return ""
            }(o.fn)
        }, string: function (e, t, n, r, i, o) {
            return Be(e)
        }, undefined: function (e, t, n, r, i, o) {
            return Be(Qe(t, i, o.fn) || "")
        }
    };

    function Ze(t, n) {
        var r = t.tweens = Object.create(null), i = t.elements, a = t.element, s = i.indexOf(a), c = be(a),
            f = p(t.queue, t.options.queue), d = p(t.options.duration, ve.duration);
        for (var v in n) if (n.hasOwnProperty(v)) {
            var y = Ie(v), g = Ne(a, y), h = n[v];
            if (!g && "tween" !== y) {
                Ut.debug && console.log('Skipping "' + v + '" due to a lack of browser support.');
                continue
            }
            if (null == h) {
                Ut.debug && console.log('Skipping "' + v + '" due to no value supplied.');
                continue
            }
            var m = r[y] = {}, w = void 0, b = void 0;
            if (m.fn = g, o(h) && (h = h.call(a, s, i.length, i)), Array.isArray(h)) {
                var x = h[1], k = h[2];
                w = h[0], u(x) && (/^[\d-]/.test(x) || De.test(x)) || o(x) || l(x) ? b = x : u(x) && S[x] || Array.isArray(x) ? (m.easing = W(x, d), b = k) : b = x || k
            } else w = h;
            m.end = Ue[void 0 === w ? "undefined" : e(w)](w, a, i, s, y, m), null == b && !1 !== f && void 0 !== c.queueList[f] || (m.start = Ue[void 0 === b ? "undefined" : e(b)](b, a, i, s, y, m), et(y, m, d))
        }
    }

    var Ye = /((?:[+\-*\/]=)?(?:[+-]?\d*\.\d+|[+-]?\d+)[a-z%]*|(?:.(?!$|[+-]?\d|[+\-*\/]=[+-]?\d))+.|.)/g,
        Xe = /^([+\-*\/]=)?([+-]?\d*\.\d+|[+-]?\d+)(.*)$/;

    function Ke(e, t) {
        for (var n = e.length, r = [], i = [], o = void 0, a = 0; a < n; a++) {
            if (!u(e[a])) return;
            "" === e[a] ? r[a] = [""] : r[a] = d(e[a].match(Ye)), i[a] = 0, o = o || r[a].length > 1
        }
        for (var l = [], s = l.pattern = [], c = function (e) {
            if (u(s[s.length - 1])) s[s.length - 1] += e; else if (e) {
                s.push(e);
                for (var t = 0; t < n; t++) l[t].push(null)
            }
        }, f = function () {
            if (!(o || s.length > 1)) {
                for (var r = "display" === t, i = "visibility" === t, a = 0; a < n; a++) {
                    var u = e[a];
                    l[a][0] = u, l[a].easing = W(r && "none" === u || i && "hidden" === u || !r && !i ? "at-end" : "at-start", 400)
                }
                return s[0] = !1, l
            }
        }, v = !0, p = 0; p < n; p++) l[p] = [];
        for (; v;) {
            for (var y = [], g = [], h = void 0, m = !1, w = !1, b = 0; b < n; b++) {
                var S = i[b]++, x = r[b][S];
                if (!x) {
                    if (b) return;
                    for (; b < n; b++) {
                        var k = i[b]++;
                        if (r[b][k]) return f()
                    }
                    v = !1;
                    break
                }
                var O = x.match(Xe);
                if (O) {
                    if (h) return f();
                    var E = parseFloat(O[2]), _ = O[3], T = O[1] ? O[1][0] + _ : void 0, M = T || _;
                    E && !g.includes(M) && g.push(M), _ || (E ? w = !0 : m = !0), y[b] = T ? [E, M, !0] : [E, M]
                } else {
                    if (y.length) return f();
                    if (h) {
                        if (h !== x) return f()
                    } else h = x
                }
            }
            if (h) c(h); else if (g.length) if (2 === g.length && m && !w && g.splice(g[0] ? 1 : 0, 1), 1 === g.length) {
                var V = g[0];
                switch (V[0]) {
                    case"+":
                    case"-":
                    case"*":
                    case"/":
                        return void(t && console.error('Velocity: The first property must not contain a relative function "' + t + '":', e))
                }
                s.push(!1);
                for (var q = 0; q < n; q++) l[q].push(y[q][0]);
                c(V)
            } else {
                c("calc(");
                for (var N = s.length - 1, A = 0; A < g.length; A++) {
                    var L = g[A], J = L[0], I = "*" === J || "/" === J, j = I || "+" === J || "-" === J;
                    I && (s[N] += "(", c(")")), A && c(" " + (j ? J : "+") + " "), s.push(!1);
                    for (var C = 0; C < n; C++) {
                        var P = y[C],
                            z = P[1] === L ? P[0] : 3 === P.length ? l[C - 1][l[C - 1].length - 1] : I ? 1 : 0;
                        l[C].push(z)
                    }
                    c(j ? L.substring(1) : L)
                }
                c(")")
            }
        }
        for (var F = 0, H = 0; F < s.length; F++) {
            var R = s[F];
            u(R) ? H && R.indexOf(",") >= 0 ? H++ : R.indexOf("rgb") >= 0 && (H = 1) : H && (H < 4 ? s[F] = !0 : H = 0)
        }
        return l
    }

    function et(e, t, n, r) {
        var i = t.start, o = t.end;
        if (u(o) && u(i)) {
            var a = Ke([i, o], e);
            if (!a && r) {
                var l = i.match(/\d\.?\d*/g) || ["0"], s = l.length, c = 0;
                a = Ke([o.replace(/\d+\.?\d*/g, function () {
                    return l[c++ % s]
                }), o], e)
            }
            if (a) switch (Ut.debug && console.log("Velocity: Sequence found:", a), a[0].percent = 0, a[1].percent = 1, t.sequence = a, t.easing) {
                case S["at-start"]:
                case S.during:
                case S["at-end"]:
                    a[0].easing = a[1].easing = t.easing
            }
        }
    }

    function tt(e) {
        if (ke.firstNew === e && (ke.firstNew = e._next), !(1 & e._flags)) {
            var t = e.element, n = e.tweens;
            p(e.options.duration, ve.duration);
            for (var r in n) {
                var i = n[r];
                if (null == i.start) {
                    var o = Qe(e.element, r);
                    u(o) ? (i.start = Be(o), et(r, i, 0, !0)) : Array.isArray(o) || console.warn("bad type", i, r, o)
                }
                Ut.debug && console.log('tweensContainer "' + r + '": ' + JSON.stringify(i), t)
            }
            e._flags |= 1
        }
    }

    function nt(e) {
        var t = e.begin || e.options.begin;
        if (t) try {
            var n = e.elements;
            t.call(n, n, e)
        } catch (e) {
            setTimeout(function () {
                throw e
            }, 1)
        }
    }

    function rt(e) {
        var t = e.progress || e.options.progress;
        if (t) try {
            var n = e.elements, r = e.percentComplete, i = e.options, o = e.tween;
            t.call(n, n, r, Math.max(0, e.timeStart + (null != e.duration ? e.duration : null != i.duration ? i.duration : ve.duration) - vt), void 0 !== o ? o : String(100 * r), e)
        } catch (e) {
            setTimeout(function () {
                throw e
            }, 1)
        }
    }

    function it() {
        var e = !0, t = !1, n = void 0;
        try {
            for (var r, i = lt[Symbol.iterator](); !(e = (r = i.next()).done); e = !0) {
                rt(r.value)
            }
        } catch (e) {
            t = !0, n = e
        } finally {
            try {
                !e && i.return && i.return()
            } finally {
                if (t) throw n
            }
        }
        lt.clear();
        var o = !0, a = !1, l = void 0;
        try {
            for (var s, u = at[Symbol.iterator](); !(o = (s = u.next()).done); o = !0) {
                Me(s.value)
            }
        } catch (e) {
            a = !0, l = e
        } finally {
            try {
                !o && u.return && u.return()
            } finally {
                if (a) throw l
            }
        }
        at.clear()
    }

    var ot = 1e3 / 60, at = new Set, lt = new Set, st = function () {
        var e = window.performance || {};
        if ("function" != typeof e.now) {
            var t = e.timing && e.timing.navigationStart ? e.timing.navigationStart : y();
            e.now = function () {
                return y() - t
            }
        }
        return e
    }(), ut = function (e) {
        return setTimeout(e, Math.max(0, ot - (st.now() - vt)))
    }, ct = window.requestAnimationFrame || ut, ft = void 0, dt = void 0, vt = 0;
    try {
        (dt = new Worker(URL.createObjectURL(new Blob(["(" + function () {
            var e = this, t = void 0;
            this.onmessage = function (n) {
                switch (n.data) {
                    case!0:
                        t || (t = setInterval(function () {
                            e.postMessage(!0)
                        }, 1e3 / 30));
                        break;
                    case!1:
                        t && (clearInterval(t), t = 0);
                        break;
                    default:
                        e.postMessage(n.data)
                }
            }
        } + ")()"])))).onmessage = function (e) {
            !0 === e.data ? pt() : it()
        }, ke.isMobile || void 0 === document.hidden || document.addEventListener("visibilitychange", function () {
            dt.postMessage(ke.isTicking && document.hidden)
        })
    } catch (e) {
    }

    function pt(e) {
        if (!ft) {
            if (ft = !0, !1 !== e) {
                var t = st.now(), n = vt ? t - vt : ot, r = ve.speed, i = ve.easing, o = ve.duration, a = void 0,
                    l = void 0;
                if (n >= ve.minFrameTime || !vt) {
                    for (vt = t; ke.firstNew;) tt(ke.firstNew);
                    for (a = ke.first; a && a !== ke.firstNew; a = a._next) {
                        var s = a.element, u = be(s);
                        if (s.parentNode && u) {
                            var c = a.options, f = a._flags, d = a.timeStart;
                            if (!d) {
                                var v = null != a.queue ? a.queue : c.queue;
                                d = t - n, !1 !== v && (d = Math.max(d, u.lastFinishList[v] || 0)), a.timeStart = d
                            }
                            16 & f ? a.timeStart += n : 2 & f || (a._flags |= 2, c._ready++)
                        } else _e(a)
                    }
                    for (a = ke.first; a && a !== ke.firstNew; a = l) {
                        var p = a._flags;
                        if (l = a._next, 2 & p && !(16 & p)) {
                            var y = a.options;
                            if (32 & p && y._ready < y._total) a.timeStart += n; else {
                                var g = null != a.speed ? a.speed : null != y.speed ? y.speed : r, h = a.timeStart;
                                if (!(4 & p)) {
                                    var m = null != a.delay ? a.delay : y.delay;
                                    if (m) {
                                        if (h + m / g > t) continue;
                                        a.timeStart = h += m / (m > 0 ? g : 1)
                                    }
                                    a._flags |= 4, 0 == y._started++ && (y._first = a, y.begin && (nt(a), y.begin = void 0))
                                }
                                1 !== g && (a.timeStart = h += Math.min(n, t - h) * (1 - g));
                                var w = null != a.easing ? a.easing : null != y.easing ? y.easing : i,
                                    b = a.ellapsedTime = t - h,
                                    S = null != a.duration ? a.duration : null != y.duration ? y.duration : o,
                                    x = a.percentComplete = Ut.mock ? 1 : Math.min(b / S, 1), O = a.tweens, E = 64 & p;
                                for (var _ in(a.progress || y._first === a && y.progress) && lt.add(a), 1 === x && at.add(a), O) {
                                    var T = O[_], M = T.sequence, V = M.pattern, q = "", N = 0;
                                    if (V) {
                                        for (var A = (T.easing || w)(x, 0, 1, _), L = 0, J = 0; J < M.length - 1; J++) M[J].percent < A && (L = J);
                                        for (var I = M[L], j = M[L + 1] || I, C = (x - I.percent) / (j.percent - I.percent), P = E ? 1 - C : C, z = j.easing || w || k; N < V.length; N++) {
                                            var F = I[N];
                                            if (null == F) q += V[N]; else {
                                                var H = j[N];
                                                if (F === H) q += F; else {
                                                    var R = z(P, F, H, _);
                                                    q += !0 !== V[N] ? R : Math.round(R)
                                                }
                                            }
                                        }
                                        "tween" !== _ ? (1 === x && (q = Le(q)), Ae(a.element, _, q, T.fn)) : a.tween = q
                                    } else console.warn("VelocityJS: Missing pattern:", _, JSON.stringify(T[_])), delete O[_]
                                }
                            }
                        }
                    }
                    (lt.size || at.size) && (document.hidden ? dt ? dt.postMessage("") : setTimeout(it, 1) : it())
                }
            }
            ke.first ? (ke.isTicking = !0, document.hidden ? dt ? !1 === e && dt.postMessage(!0) : ut(pt) : ct(pt)) : (ke.isTicking = !1, vt = 0, document.hidden && dt && dt.postMessage(!1)), ft = !1
        }
    }

    function yt(e, t, n) {
        if (tt(e), void 0 === t || t === p(e.queue, e.options.queue, n)) {
            if (!(4 & e._flags)) {
                var r = e.options;
                0 == r._started++ && (r._first = e, r.begin && (nt(e), r.begin = void 0)), e._flags |= 4
            }
            for (var i in e.tweens) {
                var o = e.tweens[i], a = o.sequence, l = a.pattern, s = "", u = 0;
                if (l) for (var c = a[a.length - 1]; u < l.length; u++) {
                    var f = c[u];
                    s += null == f ? l[u] : f
                }
                Ae(e.element, i, s, o.fn)
            }
            Me(e)
        }
    }

    m(["finish", function (e, t, n) {
        var r = Q(e[0], !0), i = ve.queue, o = !0 === e[void 0 === r ? 0 : 1];
        if (c(t) && t.velocity.animations) {
            var a = !0, l = !1, s = void 0;
            try {
                for (var u, f = t.velocity.animations[Symbol.iterator](); !(a = (u = f.next()).done); a = !0) yt(u.value, r, i)
            } catch (e) {
                l = !0, s = e
            } finally {
                try {
                    !a && f.return && f.return()
                } finally {
                    if (l) throw s
                }
            }
        } else {
            for (; ke.firstNew;) tt(ke.firstNew);
            for (var d, v = ke.first; v && (o || v !== ke.firstNew); v = d || ke.firstNew) d = v._next, t && !t.includes(v.element) || yt(v, r, i)
        }
        n && (c(t) && t.velocity.animations && t.then ? t.then(n._resolver) : n._resolver(t))
    }], !0);
    var gt = {isExpanded: 1, isReady: 2, isStarted: 4, isStopped: 8, isPaused: 16, isSync: 32, isReverse: 64};

    function ht(e, t, n, r) {
        void 0 !== t && t !== p(e.queue, e.options.queue, n) || (r ? e._flags |= 16 : e._flags &= -17)
    }

    function mt(e, t, n, r) {
        var i = 0 === r.indexOf("pause"),
            o = "false" !== (r.indexOf(".") >= 0 ? r.replace(/^.*\./, "") : void 0) && Q(e[0]), a = ve.queue;
        if (c(t) && t.velocity.animations) {
            var l = !0, s = !1, u = void 0;
            try {
                for (var f, d = t.velocity.animations[Symbol.iterator](); !(l = (f = d.next()).done); l = !0) {
                    ht(f.value, o, a, i)
                }
            } catch (e) {
                s = !0, u = e
            } finally {
                try {
                    !l && d.return && d.return()
                } finally {
                    if (s) throw u
                }
            }
        } else for (var v = ke.first; v;) t && !t.includes(v.element) || ht(v, o, a, i), v = v._next;
        n && (c(t) && t.velocity.animations && t.then ? t.then(n._resolver) : n._resolver(t))
    }

    function wt(t, n, r, i) {
        var o = t[0], a = t[1];
        if (!o) return console.warn("VelocityJS: Cannot access a non-existant property!"), null;
        if (void 0 === a && !s(o)) {
            if (Array.isArray(o)) {
                if (1 === n.length) {
                    var f = {}, d = !0, v = !1, p = void 0;
                    try {
                        for (var y, g = o[Symbol.iterator](); !(d = (y = g.next()).done); d = !0) {
                            var h = y.value;
                            f[h] = Be(Qe(n[0], h))
                        }
                    } catch (e) {
                        v = !0, p = e
                    } finally {
                        try {
                            !d && g.return && g.return()
                        } finally {
                            if (v) throw p
                        }
                    }
                    return f
                }
                var m = [], w = !0, b = !1, S = void 0;
                try {
                    for (var x, k = n[Symbol.iterator](); !(w = (x = k.next()).done); w = !0) {
                        var O = x.value, E = {}, _ = !0, T = !1, M = void 0;
                        try {
                            for (var V, q = o[Symbol.iterator](); !(_ = (V = q.next()).done); _ = !0) {
                                var N = V.value;
                                E[N] = Be(Qe(O, N))
                            }
                        } catch (e) {
                            T = !0, M = e
                        } finally {
                            try {
                                !_ && q.return && q.return()
                            } finally {
                                if (T) throw M
                            }
                        }
                        m.push(E)
                    }
                } catch (e) {
                    b = !0, S = e
                } finally {
                    try {
                        !w && k.return && k.return()
                    } finally {
                        if (b) throw S
                    }
                }
                return m
            }
            if (1 === n.length) return Be(Qe(n[0], o));
            var A = [], L = !0, J = !1, I = void 0;
            try {
                for (var j, C = n[Symbol.iterator](); !(L = (j = C.next()).done); L = !0) {
                    var P = j.value;
                    A.push(Be(Qe(P, o)))
                }
            } catch (e) {
                J = !0, I = e
            } finally {
                try {
                    !L && C.return && C.return()
                } finally {
                    if (J) throw I
                }
            }
            return A
        }
        var z = [];
        if (s(o)) {
            for (var F in o) if (o.hasOwnProperty(F)) {
                var H = !0, R = !1, B = void 0;
                try {
                    for (var W, $ = n[Symbol.iterator](); !(H = (W = $.next()).done); H = !0) {
                        var G = W.value, Q = o[F];
                        u(Q) || l(Q) ? Ae(G, F, o[F]) : (z.push('Cannot set a property "' + F + '" to an unknown type: ' + (void 0 === Q ? "undefined" : e(Q))), console.warn('VelocityJS: Cannot set a property "' + F + '" to an unknown type:', Q))
                    }
                } catch (e) {
                    R = !0, B = e
                } finally {
                    try {
                        !H && $.return && $.return()
                    } finally {
                        if (R) throw B
                    }
                }
            }
        } else if (u(a) || l(a)) {
            var D = !0, U = !1, Z = void 0;
            try {
                for (var Y, X = n[Symbol.iterator](); !(D = (Y = X.next()).done); D = !0) {
                    Ae(Y.value, o, String(a))
                }
            } catch (e) {
                U = !0, Z = e
            } finally {
                try {
                    !D && X.return && X.return()
                } finally {
                    if (U) throw Z
                }
            }
        } else z.push('Cannot set a property "' + o + '" to an unknown type: ' + (void 0 === a ? "undefined" : e(a))), console.warn('VelocityJS: Cannot set a property "' + o + '" to an unknown type:', a);
        r && (z.length ? r._rejecter(z.join(", ")) : c(n) && n.velocity.animations && n.then ? n.then(r._resolver) : r._resolver(n))
    }

    function bt(e, t, n) {
        tt(e), void 0 !== t && t !== p(e.queue, e.options.queue, n) || (e._flags |= 8, Me(e))
    }

    m(["option", function (e, t, n, r) {
        var i = e[0], o = r.indexOf(".") >= 0 ? r.replace(/^.*\./, "") : void 0, a = "false" !== o && Q(o, !0),
            l = void 0, s = e[1];
        if (!i) return console.warn("VelocityJS: Cannot access a non-existant key!"), null;
        if (c(t) && t.velocity.animations) l = t.velocity.animations; else {
            l = [];
            for (var u = ke.first; u; u = u._next) t.indexOf(u.element) >= 0 && p(u.queue, u.options.queue) === a && l.push(u);
            if (t.length > 1 && l.length > 1) {
                for (var f = 1, d = l[0].options; f < l.length;) if (l[f++].options !== d) {
                    d = null;
                    break
                }
                d && (l = [l[0]])
            }
        }
        if (void 0 === s) {
            var v = [], y = gt[i], g = !0, h = !1, m = void 0;
            try {
                for (var w, b = l[Symbol.iterator](); !(g = (w = b.next()).done); g = !0) {
                    var S = w.value;
                    void 0 === y ? v.push(p(S[i], S.options[i])) : v.push(0 == (S._flags & y))
                }
            } catch (e) {
                h = !0, m = e
            } finally {
                try {
                    !g && b.return && b.return()
                } finally {
                    if (h) throw m
                }
            }
            return 1 === t.length && 1 === l.length ? v[0] : v
        }
        var x = void 0;
        switch (i) {
            case"cache":
                s = z(s);
                break;
            case"begin":
                s = F(s);
                break;
            case"complete":
                s = H(s);
                break;
            case"delay":
                s = R(s);
                break;
            case"duration":
                s = B(s);
                break;
            case"fpsLimit":
                s = $(s);
                break;
            case"loop":
                s = G(s);
                break;
            case"percentComplete":
                x = !0, s = parseFloat(s);
                break;
            case"repeat":
            case"repeatAgain":
                s = D(s);
                break;
            default:
                if ("_" !== i[0]) {
                    var k = parseFloat(s);
                    s === String(k) && (s = k);
                    break
                }
            case"queue":
            case"promise":
            case"promiseRejectEmpty":
            case"easing":
            case"started":
                return void console.warn("VelocityJS: Trying to set a read-only key:", i)
        }
        if (void 0 === s || s != s) return console.warn("VelocityJS: Trying to set an invalid value:" + i + "=" + s + " (" + e[1] + ")"), null;
        var O = !0, E = !1, _ = void 0;
        try {
            for (var T, M = l[Symbol.iterator](); !(O = (T = M.next()).done); O = !0) {
                var V = T.value;
                x ? V.timeStart = vt - p(V.duration, V.options.duration, ve.duration) * s : V[i] = s
            }
        } catch (e) {
            E = !0, _ = e
        } finally {
            try {
                !O && M.return && M.return()
            } finally {
                if (E) throw _
            }
        }
        n && (c(t) && t.velocity.animations && t.then ? t.then(n._resolver) : n._resolver(t))
    }], !0), m(["pause", mt], !0), m(["resume", mt], !0), m(["property", wt], !0), m(["reverse", function (e, t, n, r) {
        throw new SyntaxError("VelocityJS: The 'reverse' action is built in and private.")
    }], !0), m(["stop", function (e, t, n, r) {
        var i = Q(e[0], !0), o = ve.queue, a = !0 === e[void 0 === i ? 0 : 1];
        if (c(t) && t.velocity.animations) {
            var l = !0, s = !1, u = void 0;
            try {
                for (var f, d = t.velocity.animations[Symbol.iterator](); !(l = (f = d.next()).done); l = !0) bt(f.value, i, o)
            } catch (e) {
                s = !0, u = e
            } finally {
                try {
                    !l && d.return && d.return()
                } finally {
                    if (s) throw u
                }
            }
        } else {
            for (; ke.firstNew;) tt(ke.firstNew);
            for (var v, p = ke.first; p && (a || p !== ke.firstNew); p = v || ke.firstNew) v = p._next, t && !t.includes(p.element) || bt(p, i, o)
        }
        n && (c(t) && t.velocity.animations && t.then ? t.then(n._resolver) : n._resolver(t))
    }], !0), m(["style", wt], !0), m(["tween", function (e, t, n, i) {
        var o = void 0;
        if (t) {
            if (1 !== t.length) throw new Error("VelocityJS: Cannot tween more than one element!")
        } else {
            if (!e.length) return console.info('Velocity(<element>, "tween", percentComplete, property, end | [end, <easing>, <start>], <easing>) => value\nVelocity(<element>, "tween", percentComplete, {property: end | [end, <easing>, <start>], ...}, <easing>) => {property: value, ...}'), null;
            t = [document.body], o = !0
        }
        var a = e[0], c = {elements: t, element: t[0], queue: !1, options: {duration: 1e3}, tweens: null}, f = {},
            d = e[1], v = void 0, y = void 0, g = e[2], h = 0;
        if (u(e[1]) ? Te && Te[e[1]] ? (y = Te[e[1]], d = {}, g = e[2]) : (v = !0, d = r({}, e[1], e[2]), g = e[3]) : Array.isArray(e[1]) && (v = !0, d = {tween: e[1]}, g = e[2]), !l(a) || a < 0 || a > 1) throw new Error("VelocityJS: Must tween a percentage from 0 to 1!");
        if (!s(d)) throw new Error("VelocityJS: Cannot tween an invalid property!");
        if (o) for (var m in d) if (d.hasOwnProperty(m) && (!Array.isArray(d[m]) || d[m].length < 2)) throw new Error("VelocityJS: When not supplying an element you must force-feed values: " + m);
        var b = W(p(g, ve.easing), w);
        for (var S in y ? tn(c, y) : Ze(c, d), c.tweens) {
            var x = c.tweens[S], O = x.sequence, E = O.pattern, _ = "", T = 0;
            if (h++, E) {
                for (var M = (x.easing || b)(a, 0, 1, S), V = 0, q = 0; q < O.length - 1; q++) O[q].percent < M && (V = q);
                for (var N = O[V], A = O[V + 1] || N, L = (a - N.percent) / (A.percent - N.percent), J = A.easing || k; T < E.length; T++) {
                    var I = N[T];
                    if (null == I) _ += E[T]; else {
                        var j = A[T];
                        if (I === j) _ += I; else {
                            var C = J(L, I, j, S);
                            _ += !0 === E[T] ? Math.round(C) : C
                        }
                    }
                }
                f[S] = _
            }
        }
        if (v && 1 === h) for (var P in f) if (f.hasOwnProperty(P)) return f[P];
        return f
    }], !0);
    var St = {
        aliceblue: 15792383,
        antiquewhite: 16444375,
        aqua: 65535,
        aquamarine: 8388564,
        azure: 15794175,
        beige: 16119260,
        bisque: 16770244,
        black: 0,
        blanchedalmond: 16772045,
        blue: 255,
        blueviolet: 9055202,
        brown: 10824234,
        burlywood: 14596231,
        cadetblue: 6266528,
        chartreuse: 8388352,
        chocolate: 13789470,
        coral: 16744272,
        cornflowerblue: 6591981,
        cornsilk: 16775388,
        crimson: 14423100,
        cyan: 65535,
        darkblue: 139,
        darkcyan: 35723,
        darkgoldenrod: 12092939,
        darkgray: 11119017,
        darkgrey: 11119017,
        darkgreen: 25600,
        darkkhaki: 12433259,
        darkmagenta: 9109643,
        darkolivegreen: 5597999,
        darkorange: 16747520,
        darkorchid: 10040012,
        darkred: 9109504,
        darksalmon: 15308410,
        darkseagreen: 9419919,
        darkslateblue: 4734347,
        darkslategray: 3100495,
        darkslategrey: 3100495,
        darkturquoise: 52945,
        darkviolet: 9699539,
        deeppink: 16716947,
        deepskyblue: 49151,
        dimgray: 6908265,
        dimgrey: 6908265,
        dodgerblue: 2003199,
        firebrick: 11674146,
        floralwhite: 16775920,
        forestgreen: 2263842,
        fuchsia: 16711935,
        gainsboro: 14474460,
        ghostwhite: 16316671,
        gold: 16766720,
        goldenrod: 14329120,
        gray: 8421504,
        grey: 8421504,
        green: 32768,
        greenyellow: 11403055,
        honeydew: 15794160,
        hotpink: 16738740,
        indianred: 13458524,
        indigo: 4915330,
        ivory: 16777200,
        khaki: 15787660,
        lavender: 15132410,
        lavenderblush: 16773365,
        lawngreen: 8190976,
        lemonchiffon: 16775885,
        lightblue: 11393254,
        lightcoral: 15761536,
        lightcyan: 14745599,
        lightgoldenrodyellow: 16448210,
        lightgray: 13882323,
        lightgrey: 13882323,
        lightgreen: 9498256,
        lightpink: 16758465,
        lightsalmon: 16752762,
        lightseagreen: 2142890,
        lightskyblue: 8900346,
        lightslategray: 7833753,
        lightslategrey: 7833753,
        lightsteelblue: 11584734,
        lightyellow: 16777184,
        lime: 65280,
        limegreen: 3329330,
        linen: 16445670,
        magenta: 16711935,
        maroon: 8388608,
        mediumaquamarine: 6737322,
        mediumblue: 205,
        mediumorchid: 12211667,
        mediumpurple: 9662683,
        mediumseagreen: 3978097,
        mediumslateblue: 8087790,
        mediumspringgreen: 64154,
        mediumturquoise: 4772300,
        mediumvioletred: 13047173,
        midnightblue: 1644912,
        mintcream: 16121850,
        mistyrose: 16770273,
        moccasin: 16770229,
        navajowhite: 16768685,
        navy: 128,
        oldlace: 16643558,
        olive: 8421376,
        olivedrab: 7048739,
        orange: 16753920,
        orangered: 16729344,
        orchid: 14315734,
        palegoldenrod: 15657130,
        palegreen: 10025880,
        paleturquoise: 11529966,
        palevioletred: 14381203,
        papayawhip: 16773077,
        peachpuff: 16767673,
        peru: 13468991,
        pink: 16761035,
        plum: 14524637,
        powderblue: 11591910,
        purple: 8388736,
        rebeccapurple: 6697881,
        red: 16711680,
        rosybrown: 12357519,
        royalblue: 4286945,
        saddlebrown: 9127187,
        salmon: 16416882,
        sandybrown: 16032864,
        seagreen: 3050327,
        seashell: 16774638,
        sienna: 10506797,
        silver: 12632256,
        skyblue: 8900331,
        slateblue: 6970061,
        slategray: 7372944,
        slategrey: 7372944,
        snow: 16775930,
        springgreen: 65407,
        steelblue: 4620980,
        tan: 13808780,
        teal: 32896,
        thistle: 14204888,
        tomato: 16737095,
        turquoise: 4251856,
        violet: 15631086,
        wheat: 16113331,
        white: 16777215,
        whitesmoke: 16119285,
        yellow: 16776960,
        yellowgreen: 10145074
    };
    for (var xt in St) if (St.hasOwnProperty(xt)) {
        var kt = St[xt];
        He[xt] = Math.floor(kt / 65536) + "," + Math.floor(kt / 256 % 256) + "," + kt % 256
    }

    function Ot(e) {
        return e < 1 / 2.75 ? 7.5625 * e * e : e < 2 / 2.75 ? 7.5625 * (e -= 1.5 / 2.75) * e + .75 : e < 2.5 / 2.75 ? 7.5625 * (e -= 2.25 / 2.75) * e + .9375 : 7.5625 * (e -= 2.625 / 2.75) * e + .984375
    }

    function Et(e) {
        return 1 - Ot(1 - e)
    }

    !function (e, t) {
        x([e, function (e, n, r) {
            return 0 === e ? n : 1 === e ? r : Math.pow(e, 2) * ((t + 1) * e - t) * (r - n)
        }])
    }("easeInBack", 1.7), function (e, t) {
        x([e, function (e, n, r) {
            return 0 === e ? n : 1 === e ? r : (Math.pow(--e, 2) * ((t + 1) * e + t) + 1) * (r - n)
        }])
    }("easeOutBack", 1.7), function (e, t) {
        t *= 1.525, x([e, function (e, n, r) {
            return 0 === e ? n : 1 === e ? r : .5 * ((e *= 2) < 1 ? Math.pow(e, 2) * ((t + 1) * e - t) : Math.pow(e - 2, 2) * ((t + 1) * (e - 2) + t) + 2) * (r - n)
        }])
    }("easeInOutBack", 1.7), x(["easeInBounce", function (e, t, n) {
        return 0 === e ? t : 1 === e ? n : Et(e) * (n - t)
    }]), x(["easeOutBounce", function (e, t, n) {
        return 0 === e ? t : 1 === e ? n : Ot(e) * (n - t)
    }]), x(["easeInOutBounce", function (e, t, n) {
        return 0 === e ? t : 1 === e ? n : (e < .5 ? .5 * Et(2 * e) : .5 * Ot(2 * e - 1) + .5) * (n - t)
    }]);
    var _t = 2 * Math.PI;

    function Tt(e, t) {
        return function (n, r) {
            if (void 0 === r) return We(n, e, t) + "px";
            Ae(n, e, parseFloat(r) - We(n, e, t) + "px")
        }
    }

    !function (e, t, n) {
        x([e, function (e, r, i) {
            return 0 === e ? r : 1 === e ? i : -t * Math.pow(2, 10 * (e -= 1)) * Math.sin((e - n / _t * Math.asin(1 / t)) * _t / n) * (i - r)
        }])
    }("easeInElastic", 1, .3), function (e, t, n) {
        x([e, function (e, r, i) {
            return 0 === e ? r : 1 === e ? i : (t * Math.pow(2, -10 * e) * Math.sin((e - n / _t * Math.asin(1 / t)) * _t / n) + 1) * (i - r)
        }])
    }("easeOutElastic", 1, .3), function (e, t, n) {
        x([e, function (e, r, i) {
            if (0 === e) return r;
            if (1 === e) return i;
            var o = n / _t * Math.asin(1 / t);
            return ((e = 2 * e - 1) < 0 ? t * Math.pow(2, 10 * e) * Math.sin((e - o) * _t / n) * -.5 : t * Math.pow(2, -10 * e) * Math.sin((e - o) * _t / n) * .5 + 1) * (i - r)
        }])
    }("easeInOutElastic", 1, .3 * 1.5), x(["at-start", function (e, t, n) {
        return 0 === e ? t : n
    }]), x(["during", function (e, t, n) {
        return 0 === e || 1 === e ? t : n
    }]), x(["at-end", function (e, t, n) {
        return 1 === e ? n : t
    }]), Ve(["Element", "innerWidth", Tt("width", !0)]), Ve(["Element", "innerHeight", Tt("height", !0)]), Ve(["Element", "outerWidth", Tt("width", !1)]), Ve(["Element", "outerHeight", Tt("height", !1)]);
    var Mt = /^(b|big|i|small|tt|abbr|acronym|cite|code|dfn|em|kbd|strong|samp|let|a|bdo|br|img|map|object|q|script|span|sub|sup|button|input|label|select|textarea)$/i,
        Vt = /^(li)$/i, qt = /^(tr)$/i, Nt = /^(table)$/i, At = /^(tbody)$/i;

    function Lt(e, t) {
        return function (n, r) {
            if (null == r) return Qe(n, "client" + e, null, !0), Qe(n, "scroll" + e, null, !0), n["scroll" + t] + "px";
            var i = parseFloat(r);
            switch (r.replace(String(i), "")) {
                case"":
                case"px":
                    n["scroll" + t] = i;
                    break;
                case"%":
                    var o = parseFloat(Qe(n, "client" + e)), a = parseFloat(Qe(n, "scroll" + e));
                    n["scroll" + t] = Math.max(0, a - o) * i / 100
            }
        }
    }

    Ve(["Element", "display", function (e, t) {
        var n = e.style;
        if (void 0 === t) return Ge(e, "display");
        if ("auto" === t) {
            var r = e && e.nodeName, i = be(e);
            t = Mt.test(r) ? "inline" : Vt.test(r) ? "list-item" : qt.test(r) ? "table-row" : Nt.test(r) ? "table" : At.test(r) ? "table-row-group" : "block", i.cache.display = t
        }
        n.display = t
    }]), Ve(["HTMLElement", "scroll", Lt("Height", "Top"), !1]), Ve(["HTMLElement", "scrollTop", Lt("Height", "Top"), !1]), Ve(["HTMLElement", "scrollLeft", Lt("Width", "Left"), !1]), Ve(["HTMLElement", "scrollWidth", function (e, t) {
        if (null == t) return e.scrollWidth + "px"
    }]), Ve(["HTMLElement", "clientWidth", function (e, t) {
        if (null == t) return e.clientWidth + "px"
    }]), Ve(["HTMLElement", "scrollHeight", function (e, t) {
        if (null == t) return e.scrollHeight + "px"
    }]), Ve(["HTMLElement", "clientHeight", function (e, t) {
        if (null == t) return e.clientHeight + "px"
    }]);
    var Jt = /^(b(lockSize|o(rder(Bottom(LeftRadius|RightRadius|Width)|Image(Outset|Width)|LeftWidth|R(adius|ightWidth)|Spacing|Top(LeftRadius|RightRadius|Width)|Width)|ttom))|column(Gap|RuleWidth|Width)|f(lexBasis|ontSize)|grid(ColumnGap|Gap|RowGap)|height|inlineSize|le(ft|tterSpacing)|m(a(rgin(Bottom|Left|Right|Top)|x(BlockSize|Height|InlineSize|Width))|in(BlockSize|Height|InlineSize|Width))|o(bjectPosition|utline(Offset|Width))|p(adding(Bottom|Left|Right|Top)|erspective)|right|s(hapeMargin|troke(Dashoffset|Width))|t(extIndent|op|ransformOrigin)|w(idth|ordSpacing))$/;

    function It(e, t) {
        return function (n, r) {
            if (void 0 === r) return Ge(n, e) || Ge(n, t);
            n.style[e] = n.style[t] = r
        }
    }

    function jt(e) {
        return function (t, n) {
            if (void 0 === n) return Ge(t, e);
            t.style[e] = n
        }
    }

    var Ct = /^(webkit|moz|ms|o)[A-Z]/, Pt = ke.prefixElement;
    if (Pt) for (var zt in Pt.style) if (Ct.test(zt)) {
        var Ft = zt.replace(/^[a-z]+([A-Z])/, function (e, t) {
            return t.toLowerCase()
        }), Ht = Jt.test(Ft) ? "px" : void 0;
        Ve(["Element", Ft, It(zt, Ft), Ht])
    } else if (!qe(["Element", zt])) {
        var Rt = Jt.test(zt) ? "px" : void 0;
        Ve(["Element", zt, jt(zt), Rt])
    }

    function Bt(e) {
        return function (t, n) {
            if (void 0 === n) return t.getAttribute(e);
            t.setAttribute(e, n)
        }
    }

    var Wt = document.createElement("div"), $t = /^SVG(.*)Element$/, Gt = /Element$/;

    function Qt(e) {
        return function (t, n) {
            if (void 0 === n) try {
                return t.getBBox()[e] + "px"
            } catch (e) {
                return "0px"
            }
            t.setAttribute(e, n)
        }
    }

    Object.getOwnPropertyNames(window).forEach(function (e) {
        var t = $t.exec(e);
        if (t && "SVG" !== t[1]) try {
            var n = t[1] ? document.createElementNS("http://www.w3.org/2000/svg", (t[1] || "svg").toLowerCase()) : document.createElement("svg");
            for (var r in n) {
                var i = n[r];
                !u(r) || "o" === r[0] && "n" === r[1] || r === r.toUpperCase() || Gt.test(r) || r in Wt || o(i) || Ve([e, r, Bt(r)])
            }
        } catch (t) {
            console.error("VelocityJS: Error when trying to identify SVG attributes on " + e + ".", t)
        }
    }), Ve(["SVGElement", "width", Qt("width")]), Ve(["SVGElement", "height", Qt("height")]), Ve(["Element", "tween", function (e, t) {
        if (void 0 === t) return ""
    }]);
    var Dt, Ut = an;
    if (function (e) {
        e.Actions = h, e.Easings = S, e.Sequences = Te, e.State = ke, e.defaults = ve, e.patch = sn, e.debug = !1, e.mock = !1, e.version = "2.0.5", e.Velocity = an
    }(Dt || (Dt = {})), function () {
        if (document.documentMode) return document.documentMode;
        for (var e = 7; e > 4; e--) {
            var t = document.createElement("div");
            if (t.innerHTML = "\x3c!--[if IE " + e + "]><span></span><![endif]--\x3e", t.getElementsByTagName("span").length) return t = null, e
        }
    }() <= 8) throw new Error("VelocityJS cannot run on Internet Explorer 8 or earlier");
    if (window) {
        var Zt = window.jQuery, Yt = window.Zepto;
        sn(window, !0), sn(Element && Element.prototype), sn(NodeList && NodeList.prototype), sn(HTMLCollection && HTMLCollection.prototype), sn(Zt, !0), sn(Zt && Zt.fn), sn(Yt, !0), sn(Yt && Yt.fn)
    }
    var Xt = function (t) {
        if (Dt.hasOwnProperty(t)) switch (void 0 === t ? "undefined" : e(t)) {
            case"number":
            case"boolean":
                v(Ut, t, {
                    get: function () {
                        return Dt[t]
                    }, set: function (e) {
                        Dt[t] = e
                    }
                }, !0);
                break;
            default:
                v(Ut, t, Dt[t], !0)
        }
    };
    for (var Kt in Dt) Xt(Kt);
    Object.freeze(Ut);
    var en = /(\d*\.\d+|\d+\.?|from|to)/g;

    function tn(e, t) {
        var n = e.tweens = Object.create(null), r = e.element;
        for (var i in t.tweens) if (t.tweens.hasOwnProperty(i)) {
            var o = Ne(r, i);
            if (!o && "tween" !== i) {
                Ut.debug && console.log("Skipping [" + i + "] due to a lack of browser support.");
                continue
            }
            n[i] = {fn: o, sequence: t.tweens[i]}
        }
    }

    m(["registerSequence", function e(t) {
        if (s(t[0])) for (var n in t[0]) t[0].hasOwnProperty(n) && e([n, t[0][n]]); else if (u(t[0])) {
            var r = t[0], i = t[1];
            if (u(r)) if (s(i)) {
                Te[r] && console.warn("VelocityJS: Replacing named sequence:", r);
                var o = {}, a = new Array(100), c = [], f = Te[r] = {}, d = B(i.duration);
                for (var v in f.tweens = {}, l(d) && (f.duration = d), i) if (i.hasOwnProperty(v)) {
                    var p = String(v).match(en);
                    if (p) {
                        var y = !0, g = !1, h = void 0;
                        try {
                            for (var m, b = p[Symbol.iterator](); !(y = (m = b.next()).done); y = !0) {
                                var S = m.value, x = "from" === S ? 0 : "to" === S ? 100 : parseFloat(S);
                                if (x < 0 || x > 100) console.warn("VelocityJS: Trying to use an invalid value as a percentage (0 <= n <= 100):", r, x); else if (isNaN(x)) console.warn("VelocityJS: Trying to use an invalid number as a percentage:", r, v, S); else for (var k in o[String(x)] || (o[String(x)] = []), o[String(x)].push(v), i[v]) c.includes(k) || c.push(k)
                            }
                        } catch (e) {
                            g = !0, h = e
                        } finally {
                            try {
                                !y && b.return && b.return()
                            } finally {
                                if (g) throw h
                            }
                        }
                    }
                }
                var O = Object.keys(o).sort(function (e, t) {
                    var n = parseFloat(e), r = parseFloat(t);
                    return n > r ? 1 : n < r ? -1 : 0
                });
                O.forEach(function (e) {
                    a.push.apply(o[e])
                });
                var E = !0, _ = !1, T = void 0;
                try {
                    for (var M, V = c[Symbol.iterator](); !(E = (M = V.next()).done); E = !0) {
                        var q = M.value, N = [], A = Ie(q), L = !0, J = !1, I = void 0;
                        try {
                            for (var j, C = O[Symbol.iterator](); !(L = (j = C.next()).done); L = !0) {
                                var P = j.value, z = !0, F = !1, H = void 0;
                                try {
                                    for (var R, $ = o[P][Symbol.iterator](); !(z = (R = $.next()).done); z = !0) {
                                        var G = i[R.value];
                                        G[A] && N.push(u(G[A]) ? G[A] : G[A][0])
                                    }
                                } catch (e) {
                                    F = !0, H = e
                                } finally {
                                    try {
                                        !z && $.return && $.return()
                                    } finally {
                                        if (F) throw H
                                    }
                                }
                            }
                        } catch (e) {
                            J = !0, I = e
                        } finally {
                            try {
                                !L && C.return && C.return()
                            } finally {
                                if (J) throw I
                            }
                        }
                        if (N.length) {
                            var Q = Ke(N, A), D = 0;
                            if (Q) {
                                var U = !0, Z = !1, Y = void 0;
                                try {
                                    for (var X, K = O[Symbol.iterator](); !(U = (X = K.next()).done); U = !0) {
                                        var ee = X.value, te = !0, ne = !1, re = void 0;
                                        try {
                                            for (var ie, oe = o[ee][Symbol.iterator](); !(te = (ie = oe.next()).done); te = !0) {
                                                var ae = i[ie.value][A];
                                                ae && (Array.isArray(ae) && ae.length > 1 && (u(ae[1]) || Array.isArray(ae[1])) && (Q[D].easing = W(ae[1], f.duration || w)), Q[D++].percent = parseFloat(ee) / 100)
                                            }
                                        } catch (e) {
                                            ne = !0, re = e
                                        } finally {
                                            try {
                                                !te && oe.return && oe.return()
                                            } finally {
                                                if (ne) throw re
                                            }
                                        }
                                    }
                                } catch (e) {
                                    Z = !0, Y = e
                                } finally {
                                    try {
                                        !U && K.return && K.return()
                                    } finally {
                                        if (Z) throw Y
                                    }
                                }
                                f.tweens[A] = Q
                            }
                        }
                    }
                } catch (e) {
                    _ = !0, T = e
                } finally {
                    try {
                        !E && V.return && V.return()
                    } finally {
                        if (_) throw T
                    }
                }
            } else console.warn("VelocityJS: Trying to set 'registerSequence' sequence to an invalid value:", r, i); else console.warn("VelocityJS: Trying to set 'registerSequence' name to an invalid value:", r)
        }
    }], !0);
    var nn = void 0;
    try {
        nn = Promise
    } catch (e) {
    }
    var rn = ", if that is deliberate then pass `promiseRejectEmpty:false` as an option";

    function on(e, t) {
        v(t, "promise", e), v(t, "then", e.then.bind(e)), v(t, "catch", e.catch.bind(e)), e.finally && v(t, "finally", e.finally.bind(e))
    }

    function an() {
        for (var e = arguments.length, t = Array(e), n = 0; n < e; n++) t[n] = arguments[n];
        var r = ve, y = arguments, g = y[0],
            m = s(g) && (g.p || s(g.properties) && !g.properties.names || u(g.properties)), w = 0, b = void 0,
            S = void 0, x = void 0, k = void 0, O = void 0, E = void 0, _ = void 0;
        a(this) ? b = [this] : f(this) ? (b = d(this), c(this) && (k = this.velocity.animations)) : m ? (b = d(g.elements || g.e), w++) : a(g) ? (b = d([g]), w++) : f(g) && (b = d(g), w++), b && (v(b, "velocity", an.bind(b)), k && v(b.velocity, "animations", k));
        var T = "reverse" === (S = m ? p(g.properties, g.p) : y[w++]), M = !T && u(S), V = M && Te[S],
            q = m ? p(g.options, g.o) : y[w];
        if (s(q) && (x = q), nn && p(x && x.promise, r.promise) && (O = new nn(function (e, t) {
            _ = t, E = function (t) {
                c(t) && t.promise ? (delete t.then, delete t.catch, delete t.finally, e(t), on(t.promise, t)) : e(t)
            }
        }), b && on(O, b)), O) {
            var N = x && x.promiseRejectEmpty, A = p(N, r.promiseRejectEmpty);
            b || M ? S || (A ? _("Velocity: No properties supplied" + (i(N) ? "" : rn) + ". Aborting.") : E()) : A ? _("Velocity: No elements supplied" + (i(N) ? "" : rn) + ". Aborting.") : E()
        }
        if (!b && !M || !S) return O;
        if (M) {
            for (var L = [], J = O && {_promise: O, _resolver: E, _rejecter: _}; w < y.length;) L.push(y[w++]);
            var I = S.replace(/\..*$/, ""), j = h[I];
            if (j) {
                var C = j(L, b, J, S);
                return void 0 !== C ? C : b || O
            }
            if (!V) return void console.error("VelocityJS: First argument (" + S + ") was not a property map, a known action, or a registered redirect. Aborting.")
        }
        var P = void 0;
        if (s(S) || T || V) {
            var z = {}, $ = r.sync;
            if (O && (v(z, "_promise", O), v(z, "_rejecter", _), v(z, "_resolver", E)), v(z, "_ready", 0), v(z, "_started", 0), v(z, "_completed", 0), v(z, "_total", 0), s(x)) {
                var Y = B(x.duration);
                P = void 0 !== Y, z.duration = p(Y, r.duration), z.delay = p(R(x.delay), r.delay), z.easing = W(p(x.easing, r.easing), z.duration) || W(r.easing, z.duration), z.loop = p(G(x.loop), r.loop), z.repeat = z.repeatAgain = p(D(x.repeat), r.repeat), null != x.speed && (z.speed = p(U(x.speed), 1)), i(x.promise) && (z.promise = x.promise), z.queue = p(Q(x.queue), r.queue), x.mobileHA && !ke.isGingerbread && (z.mobileHA = !0), !0 === x.drag && (z.drag = !0), (l(x.stagger) || o(x.stagger)) && (z.stagger = x.stagger), T || (null != x.display && (S.display = x.display, console.error('Deprecated "options.display" used, this is now a property:', x.display)), null != x.visibility && (S.visibility = x.visibility, console.error('Deprecated "options.visibility" used, this is now a property:', x.visibility)));
                var X = F(x.begin), K = H(x.complete), ee = function (e) {
                    if (o(e)) return e;
                    null != e && console.warn("VelocityJS: Trying to set 'progress' to an invalid value:", e)
                }(x.progress), te = Z(x.sync);
                null != X && (z.begin = X), null != K && (z.complete = K), null != ee && (z.progress = ee), null != te && ($ = te)
            } else if (!m) {
                var ne = 0;
                if (z.duration = B(y[w], !0), void 0 === z.duration ? z.duration = r.duration : (P = !0, ne++), !o(y[w + ne])) {
                    var re = W(y[w + ne], p(z && B(z.duration), r.duration), !0);
                    void 0 !== re && (ne++, z.easing = re)
                }
                var ie = H(y[w + ne], !0);
                void 0 !== ie && (z.complete = ie), z.delay = r.delay, z.loop = r.loop, z.repeat = z.repeatAgain = r.repeat
            }
            if (T && !1 === z.queue) throw new Error("VelocityJS: Cannot reverse a queue:false animation.");
            !P && V && V.duration && (z.duration = V.duration);
            var oe = {
                options: z,
                elements: b,
                _prev: void 0,
                _next: void 0,
                _flags: $ ? 32 : 0,
                percentComplete: 0,
                ellapsedTime: 0,
                timeStart: 0
            };
            k = [];
            for (var ae = 0; ae < b.length; ae++) {
                var le = b[ae], se = 0;
                if (a(le)) {
                    if (T) {
                        var ue = be(le).lastAnimationList[z.queue];
                        if (!(S = ue && ue.tweens)) {
                            console.error("VelocityJS: Attempting to reverse an animation on an element with no previous animation:", le);
                            continue
                        }
                        se |= 64 & ~(64 & ue._flags)
                    }
                    var ce = Object.assign({}, oe, {element: le, _flags: oe._flags | se});
                    if (z._total++, k.push(ce), z.stagger) if (o(z.stagger)) {
                        var fe = ln(z.stagger, le, ae, b.length, b, "stagger");
                        l(fe) && (ce.delay = z.delay + fe)
                    } else ce.delay = z.delay + z.stagger * ae;
                    z.drag && (ce.duration = z.duration - z.duration * Math.max(1 - (ae + 1) / b.length, .75)), V ? tn(ce, V) : T ? ce.tweens = S : (ce.tweens = Object.create(null), Ze(ce, S)), Ee(le, ce, z.queue)
                }
            }
            !1 === ke.isTicking && pt(!1), k && v(b.velocity, "animations", k)
        }
        return b || O
    }

    function ln(e, t, n, r, i, o) {
        try {
            return e.call(t, n, r, i, o)
        } catch (e) {
            console.error("VelocityJS: Exception when calling '" + o + "' callback:", e)
        }
    }

    function sn(e, t) {
        try {
            v(e, (t ? "V" : "v") + "elocity", an)
        } catch (e) {
            console.warn("VelocityJS: Error when trying to add prototype.", e)
        }
    }

    var un, cn = an;
    if (function (e) {
        e.Actions = h, e.Easings = S, e.Sequences = Te, e.State = ke, e.defaults = ve, e.patch = sn, e.debug = !1, e.mock = !1, e.version = "2.0.5", e.Velocity = an
    }(un || (un = {})), function () {
        if (document.documentMode) return document.documentMode;
        for (var e = 7; e > 4; e--) {
            var t = document.createElement("div");
            if (t.innerHTML = "\x3c!--[if IE " + e + "]><span></span><![endif]--\x3e", t.getElementsByTagName("span").length) return t = null, e
        }
    }() <= 8) throw new Error("VelocityJS cannot run on Internet Explorer 8 or earlier");
    if (window) {
        var fn = window.jQuery, dn = window.Zepto;
        sn(window, !0), sn(Element && Element.prototype), sn(NodeList && NodeList.prototype), sn(HTMLCollection && HTMLCollection.prototype), sn(fn, !0), sn(fn && fn.fn), sn(dn, !0), sn(dn && dn.fn)
    }
    var vn = function (t) {
        if (un.hasOwnProperty(t)) switch (void 0 === t ? "undefined" : e(t)) {
            case"number":
            case"boolean":
                v(cn, t, {
                    get: function () {
                        return un[t]
                    }, set: function (e) {
                        un[t] = e
                    }
                }, !0);
                break;
            default:
                v(cn, t, un[t], !0)
        }
    };
    for (var pn in un) vn(pn);
    return Object.freeze(cn), cn
});